package utilityTools;

/**
 * @Author jlj
 * @Date 2022-07-26 17:12
 * @Description 空间索引操作类
 * @Modified
 */
public class SPIUtils {

    /**
     * 根据距离返回需要使用的H3索引的级别
     *
     * @param radius 搜索半径(单位：m)
     * @return 根据：h3精度的对应表得出的级别
     */
    public static int getResH3(double radius) {
        //radius的单位是m
        radius = radius / 1000;
        if (radius < 0.009415526) {
            return 14;
        } else if (radius < 0.174375668) {
            return 11;
        } else if (radius < 1.220629759) {
            return 8;
        } else if (radius < 3.229482772) {
            return 6;
        } else if (radius < 8.544408276) {
            return 5;
        } else if (radius < 59.810857940) {
            return 4;
        } else {
            return 2;
        }
    }
}
